Businesses and companies today store copious quantities of data in online transaction processing (OLTP) systems and other databases. On-Line Analytical Processing (OLAP) systems enable multidimensional analysis of the data in such databases. OLAP systems employ a conceptual model referred to as a cube. An OLAP cube is a multidimensional representation of data, in effect, a multidimensional OLAP database, which enables rapid analysis of data.
OLAP cubes are typically subject matter oriented. The data in a cube are organized as a set of dimensions. Dimensions correspond to categories of data analysis (e.g., date, equipment, device, location, etc.). Each dimension of a cube includes a number of members. The members may be organized into a hierarchy (e.g., country, state, city, street address). The multiple levels of a dimension enable multiple levels of aggregation by which to analyze the data. An OLAP cube also includes measures, which, generally, are metrics aggregated along dimensional hierarchies of the cube. For example, a cube may include a Total Sales measure for various products over various periods. In a cube, the measures are pre-aggregated.
An OLAP system may store any number of cubes of different subject matter having different numbers of dimensions with different hierarchical levels. Such OLAP cubes are built using dimensional modeling techniques. An OLAP system can derive a multidimensional cube by processing data from a relational database.
In an OLAP system, data can be aggregated across various dimensions at various levels to provide different views of the data at different levels of aggregation. Such aggregated data are commonly referred to as an aggregation. As an example, data may be aggregated by time, geography, equipment, and product. For instance, an aggregation may be the sales data for the month of December for a specified product. A slice typically comprises a level from each of the dimensions, and aggregations are typically associated with a slice.
End users can run application programs that connect to a cube for analyzing the data and reporting. An application may query an individual cell of the cube by identifying a member in each dimension and a measure. OLAP queries can retrieve data and request aggregations at various levels. If an aggregation is not presently available (e.g., the aggregation has not been pre-computed, or is out-of-date with respect to the underlying data), an OLAP server of the OLAP system may dynamically compute the aggregation in real-time. For example, the OLAP server may generate a relational database query to determine the cell value from an underlying relational database. An application need only understand the dimensions of the OLAP cubes and their hierarchies, and not the underlying physical implementation of the database schema used to store the data. An example of a query language for OLAP systems is Multidimensional Expressions (MDX) from Microsoft® Corp. of Redmond, Wash.